package com.lvmama.service.rhino.treestatistic;



import com.lvmama.pojo.dto.rhino.CommonStatisticsSqlVO;
import com.lvmama.pojo.dto.rhino.tree.DeviceStatisticsSqlVO;
import com.lvmama.pojo.dto.rhino.tree.NettypeStatisticsSqlVO;
import com.lvmama.pojo.dto.rhino.tree.RegionStatisticsSqlVO;
import com.lvmama.pojo.dto.rhino.tree.StatisticsSqlVO;
import com.lvmama.pojo.entity.rhino.CommonStatisticsResult;
import com.lvmama.pojo.entity.rhino.tree.*;

import java.util.List;

public interface TreeStatisticsService {

    /**
     * 
    * @Title: QueryAllTreeNodeView 
    * @Description: 查询所有的树状图节点
    * @param @return    设定文件 
    * @return List<TreeNodeView>    返回类型 
    * @throws
     */
    List<TreeNodeView> queryAllTreeNodeView();
    
    /**
     * 
    * @Title: QueryAllCodeNode 
    * @Description: 查询所有的code码
    * @param @return    设定文件 
    * @return List<TreeNodeView>    返回类型 
    * @throws
     */
    List<CodeNode> queryAllCodeNode();

    /**
     * 
    * @Title: insertTreeNodeView 
    * @Description: 插入数据库表结构
    * @param @param cn    设定文件 
    * @return void    返回类型 
    * @throws
     */
    void insertTreeNodeView(TreeNodeView treeNodeView);
    
    /**
     * 
    * @Title: deleteTreeNodeView 
    * @Description: 删除节点及其子节点
    * @param @param cn    设定文件 
    * @return void    返回类型 
    * @throws
     */
    void deleteTreeNodeView(TreeNodeView treeNodeView);
    
    List<String> queryDataByNode();
    
    List<FlowStatisticsResult> queryFlowSticsResByNode(StatisticsSqlVO ss);
    
    /**
     * 
    * @Title: QueryFSConversion 
    * @Description: 查询流量转化率表，显示节点的百分比和统计值
    * @param @param ss
    * @return List<FlowStatisticsResult>    返回类型 
    * @throws
     */
    List<FlowStatisticsResult> queryFSConversion(StatisticsSqlVO ss);
    
    /**
     * 
    * @Title: QueryDeviceFS 
    * @Description: 节点流量包中的设备属性数据
    * @param @param ss
    * @return List<DeviceStatisticsResult>    返回类型 
    * @throws
     */
    List<DeviceStatisticsResult> queryDeviceFS(DeviceStatisticsSqlVO ss);
    
    /**
     * 
    * @Title: QueryNettypeFS 
    * @Description: 节点流量包中的网络运营商统计
    * @param @param ss
    * @return List<NettypeStatisticsResult>    返回类型 
    * @throws
     */
    List<NettypeStatisticsResult> queryNettypeFS(NettypeStatisticsSqlVO ss);
    
    /**
     * 
    * @Title: QueryRegionFS 
    * @Description: 节点流量包中的省份流量统计
    * @param @param ss
    * @return List<RegionStatisticsResult>    返回类型 
    * @throws
     */
    List<RegionStatisticsResult> queryRegionFS(RegionStatisticsSqlVO ss);
    
    List<CommonStatisticsResult> queryCommonFS(CommonStatisticsSqlVO ss);
}
